package com.cskaoyan.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.cskaoyan.bean.CustomBean;
import com.cskaoyan.dao.UserDao;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import javax.sql.DataSource;

/**
 * @author stone
 * @date 2022/08/02 15:15
 */
@Configuration
@ComponentScan("com.cskaoyan")
@Import(CustomBean.class)
public class SpringConfiguration {

    // 在配置类中可以使用方法来注册组件
    /**
     * 返回值：返回值类型就是向容器中注册的组件类型;
     *        方法的返回值（结果）作为最终向容器中注册的组件
     * 方法名：默认的组件id
     * 形参：默认按照类型从容器中取出组件;如果这个类型的组件在容器中不止一个，@Qualifier的value属性指定组件id
     * 方法体：采用SE的代码风格提供一个实例
     * @Bean的value属性：指定组件id
     */
    @Bean
    public DataSource dataSource(@Qualifier("userDao") UserDao userDao) {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/cskaoyan_db");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        return dataSource;
    }

}
